home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2007 January, February, March & April
/
Chip-Cover-CD-2007-02.iso
/
Pakiet internetowy
/
Rozne
/
HTTrack 3.40-2
/
httrack-3.40-2.exe
/
{app}
/
src
/
proxy
/
store.h
< prev
Wrap
C/C++ Source or Header
|
2006-04-09
|
4KB
|
106 lines
/* ------------------------------------------------------------ */
/*
HTTrack Website Copier, Offline Browser for Windows and Unix
Copyright (C) Xavier Roche and other contributors
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Please visit our Website: http://www.httrack.com
*/
/* ------------------------------------------------------------ */
/* File: Cache manager for ProxyTrack */
/* Author: Xavier Roche */
/* ------------------------------------------------------------ */
#ifndef WEBHTTRACK_PROXYTRACK_STORE
#define WEBHTTRACK_PROXYTRACK_STORE
/* Proxy */
typedef struct _PT_Index _PT_Index;
typedef struct _PT_Indexes _PT_Indexes;
typedef struct _PT_Index *PT_Index;
typedef struct _PT_Indexes *PT_Indexes;
typedef struct _PT_Cache _PT_Cache;
typedef struct _PT_Cache *PT_Cache;
typedef struct _PT_CacheItem _PT_CacheItem;
typedef struct _PT_CacheItem *PT_CacheItem;
typedef struct _PT_Element {
int indexId; // index identifier, if suitable (!= -1)
//
int statuscode; // status-code, -1=erreur, 200=OK,201=..etc (cf RFC1945)
char* adr; // adresse du bloc de mΘmoire, NULL=vide
char* headers; // adresse des en tΩtes si prΘsents
unsigned long int size; // taille fichier
char msg[1024]; // error message ("\0"=undefined)
char contenttype[64]; // content-type ("text/html" par exemple)
char charset[64]; // charset ("iso-8859-1" par exemple)
char* location; // on copie dedans Θventuellement la vΘritable 'location'
char lastmodified[64]; // Last-Modified
char etag[64]; // Etag
char cdispo[256]; // Content-Disposition coupΘ
} _PT_Element;
typedef struct _PT_Element *PT_Element;
typedef enum PT_Fetch_Flags {
FETCH_HEADERS, // fetch headers
FETCH_BODY // fetch body
} PT_Fetch_Flags;
/* Locking */
#ifdef _WIN32
typedef void* PT_Mutex;
#else
typedef pthread_mutex_t PT_Mutex;
#endif
void MutexInit(PT_Mutex *pMutex);
void MutexLock(PT_Mutex *pMutex);
void MutexUnlock(PT_Mutex *pMutex);
void MutexFree(PT_Mutex *pMutex);
/* Indexes */
PT_Indexes PT_New(void);
void PT_Delete(PT_Indexes index);
PT_Element PT_ReadIndex(PT_Indexes indexes, const char* url, int flags);
int PT_LookupIndex(PT_Indexes indexes, const char* url);
int PT_AddIndex(PT_Indexes index, const char *path);
int PT_RemoveIndex(PT_Indexes index, int indexId);
int PT_IndexMerge(PT_Indexes indexes, PT_Index *pindex);
PT_Index PT_GetIndex(PT_Indexes indexes, int indexId);
/* Indexes list */
PT_Element PT_Index_HTML_BuildRootInfo(PT_Indexes indexes);
char ** PT_Enumerate(PT_Indexes indexes, const char *url, int subtree);
void PT_Enumerate_Delete(char ***plist);
/* Index */
PT_Index PT_LoadCache(const char *filename);
void PT_Index_Delete(PT_Index *pindex);
PT_Element PT_ReadCache(PT_Index index, const char* url, int flags);
int PT_LookupCache(PT_Index index, const char* url);
time_t PT_Index_Timestamp(PT_Index index);
/* Elements*/
PT_Element PT_ElementNew(void);
void PT_Element_Delete(PT_Element *pentry);
#endif